试验设计与数据分析
  1. 高级统计分析
  2. 11  通径分析
  1. 高级统计分析
  2. 11  通径分析

11  通径分析

  • 主页

  • 试验设计概述
    • 1  试验设计基础

  • R语言基础
    • 2  Rstudio环境配置
    • 3  数据类型与基本语法

  • Tidyverse学习
    • 4  tidyverse简介
    • 5  数据读取与导出
    • 6  ggplot2
    • 7  grid系统

  • 回归与拟合
    • 8  线性和非线性拟合

  • 试验设计与方差分析
    • 9  随机区组试验设计
    • 10  裂区试验设计

  • 高级统计分析
    • 11  通径分析
    • 12  随机森林回归
    • 13  主成分分析(PCA)
    • 14  冗余分析
    • 15  结构方程模型
    • 16  弦图(Chord diagram)
    • 17  Meta分析

  • 关于

页内导航

  • 11.1 加载工具包
  • 11.2 相关分析
  • 11.3 通径分析

目前只完成了代码部分,后续还有待完善。

11.1 加载工具包

library(tidyverse)
library(agricolae)
library(knitr)

以R自带数据集为例,进行通径分析。

11.2 相关分析

data(haynes)
X <- haynes %>% dplyr::select(FL,   MI,   ME)
Y <- haynes$WI

# correlation analysis ---------------------------------------
corr.x <- correlation(X, X)
corr.y <- correlation(Y, X)

corr.x$correlation %>% as.data.frame()
corr.x$pvalue %>% as.data.frame()
corr.y$correlation %>% as.data.frame()
corr.y$pvalue %>% as.data.frame()
表 11.1 相关分析
(a) 影响因子相关系数
FL MI ME
FL 1.00 0.73 0.79
MI 0.73 1.00 0.74
ME 0.79 0.74 1.00
(b) 影响因子相关分析显著性
FL MI ME
FL 0.0000 0.0015 2e-04
MI 0.0015 0.0000 1e-03
ME 0.0002 0.0010 0e+00
(c) 响应变量同影响因子间相关系数
FL MI ME
Y 0.57 0.8 0.82
(d) 响应变量同影响因子间相关分析显著性
FL MI ME
Y 0.0224 2e-04 1e-04

11.3 通径分析

利用相关系数进行通径分析

# Path Analysis -----------------------------------------------
result <- path.analysis(corr.x$correlation, corr.y$correlation)

## 直接作用
DEffect <- diag(result$Coeff)
## 间接作用
diag(result$Coeff) <- 0
IEffect <- rowSums(result$Coeff)

# print results of path analysis -----------------------------------------------
result1 <- result$Coeff %>% as.data.frame %>%
  mutate(
    '总间接作用' = IEffect,
    '直接作用' = DEffect,
    '总作用' = corr.y$correlation %>% as.numeric(),
    '贡献率(%)' = (corr.y$correlation %>% as.numeric())^2*DEffect
  ) 

rownames(result1) <- DEffect %>% names
result1
表 11.2 通径分析
FL MI ME 总间接作用 直接作用 总作用 贡献率(%)
FL 0.0000000 0.4114620 0.5835292 0.9949913 -0.4249913 0.57 -0.1380797
MI -0.3102436 0.0000000 0.5465970 0.2363534 0.5636466 0.80 0.3607338
ME -0.3357431 0.4170985 0.0000000 0.0813554 0.7386446 0.82 0.4966646
sprintf("Residual Effect^2 =  %2.3f\n",
        result$Residual) %>% cat
Residual Effect^2 =  0.186
高级统计分析
12  随机森林回归
Source Code
# 通径分析

目前只完成了代码部分,后续还有待完善。

## 加载工具包
```{r}
#| warning: false
library(tidyverse)
library(agricolae)
library(knitr)
```
以R自带数据集为例,进行通径分析。

## 相关分析
```{r}
#| label: tbl-correlation
#| tbl-cap: 相关分析
#| tbl-subcap: ["影响因子相关系数","影响因子相关分析显著性","响应变量同影响因子间相关系数","响应变量同影响因子间相关分析显著性"]
data(haynes)
X <- haynes %>% dplyr::select(FL,   MI,   ME)
Y <- haynes$WI

# correlation analysis ---------------------------------------
corr.x <- correlation(X, X)
corr.y <- correlation(Y, X)

corr.x$correlation %>% as.data.frame()
corr.x$pvalue %>% as.data.frame()

corr.y$correlation %>% as.data.frame()
corr.y$pvalue %>% as.data.frame()

```

## 通径分析

利用相关系数进行通径分析

```{r}
#| message: false
#| warning: false
#| results: hide

# Path Analysis -----------------------------------------------
result <- path.analysis(corr.x$correlation, corr.y$correlation)

## 直接作用
DEffect <- diag(result$Coeff)
## 间接作用
diag(result$Coeff) <- 0
IEffect <- rowSums(result$Coeff)

# print results of path analysis -----------------------------------------------
result1 <- result$Coeff %>% as.data.frame %>%
  mutate(
    '总间接作用' = IEffect,
    '直接作用' = DEffect,
    '总作用' = corr.y$correlation %>% as.numeric(),
    '贡献率(%)' = (corr.y$correlation %>% as.numeric())^2*DEffect
  ) 

rownames(result1) <- DEffect %>% names
```
```{r}
#| label: tbl-path.analysis
#| tbl-cap: "通径分析"
result1
```

```{r}
sprintf("Residual Effect^2 =  %2.3f\n",
        result$Residual) %>% cat
```

 

Copyright 2025, Taotao Chen